@JsonFormat এবং @JsonView এর ব্যবহার

Java Technologies - জ্যাকসন (Jackson) - Jackson এর Annotations
180

Java-তে JSON serialization এবং deserialization কাজ করার জন্য Jackson একটি জনপ্রিয় লাইব্রেরি। @JsonFormat এবং @JsonView দুটি গুরুত্বপূর্ণ Jackson এনোটেশন যা JSON serialization প্রক্রিয়া কাস্টমাইজ করতে ব্যবহৃত হয়।


1. @JsonFormat

@JsonFormat ব্যবহার করা হয় একটি ফিল্ডের ফরম্যাট কাস্টমাইজ করতে। এটি তারিখ এবং সময়, সংখ্যা ইত্যাদির ফরম্যাট নিয়ন্ত্রণ করতে কার্যকর।

উদাহরণ:

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.Date;

class User {
    public String name;

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy HH:mm:ss")
    public Date registrationDate;
}

public class Main {
    public static void main(String[] args) throws Exception {
        User user = new User();
        user.name = "John Doe";
        user.registrationDate = new Date();

        ObjectMapper objectMapper = new ObjectMapper();
        String jsonOutput = objectMapper.writeValueAsString(user);
        System.out.println(jsonOutput);
    }
}

আউটপুট:

{
  "name": "John Doe",
  "registrationDate": "21-12-2024 15:30:00"
}

2. @JsonView

@JsonView ব্যবহার করা হয় বিভিন্ন দৃষ্টিভঙ্গি (views) অনুযায়ী JSON serialization নিয়ন্ত্রণ করতে।

ধাপসমূহ:

  1. একটি বা একাধিক ভিউ ইন্টারফেস তৈরি করুন।
  2. @JsonView এনোটেশন দিয়ে ফিল্ড বা মেথডে নির্ধারণ করুন কোন ভিউটি কোন তথ্য দেখাবে।
  3. ObjectMapper-কে কনফিগার করুন নির্দিষ্ট ভিউ ব্যবহার করার জন্য।

উদাহরণ:

import com.fasterxml.jackson.annotation.JsonView;
import com.fasterxml.jackson.databind.ObjectMapper;

class Views {
    public static class Public {}
    public static class Internal extends Public {}
}

class Product {
    @JsonView(Views.Public.class)
    public String name;

    @JsonView(Views.Internal.class)
    public double price;

    @JsonView(Views.Public.class)
    public String description;
}

public class Main {
    public static void main(String[] args) throws Exception {
        Product product = new Product();
        product.name = "Laptop";
        product.price = 1200.99;
        product.description = "High performance laptop";

        ObjectMapper objectMapper = new ObjectMapper();

        // Public view serialization
        String publicJson = objectMapper.writerWithView(Views.Public.class).writeValueAsString(product);
        System.out.println("Public View: " + publicJson);

        // Internal view serialization
        String internalJson = objectMapper.writerWithView(Views.Internal.class).writeValueAsString(product);
        System.out.println("Internal View: " + internalJson);
    }
}

আউটপুট:

Public View: {"name":"Laptop","description":"High performance laptop"}
Internal View: {"name":"Laptop","price":1200.99,"description":"High performance laptop"}

ব্যবহারিক ক্ষেত্র:

  • @JsonFormat: তারিখ বা সংখ্যা প্রদর্শনের ফরম্যাট নিয়ন্ত্রণে (যেমন UI বা API রেসপন্সে)।
  • @JsonView: API-তে বিভিন্ন ধরনের ক্লায়েন্ট বা ইউজারের জন্য আলাদা তথ্য প্রদর্শনে।

এগুলো ব্যবহার করে JSON serialization কাস্টমাইজ করা আরও সহজ এবং উন্নততর করা সম্ভব।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...